const CompressionPlugin = require('compression-webpack-plugin');//引入compression-webpack-plugin

module.exports = {
    lintOnSave: false, // 取消Eslint严格模式
    productionSourceMap: false, // 移除.map 问价
    assetsDir: 'static', // 静态资源(js、css、img、fonts)目录
    // history 模式
    publicPath: '/',
    // hash 模式
    // publicPath: './', // "/test/"
    
    //开发服务配置
    devServer: {
        hot: true, // 目标主机
        open: true,
        port: '1101', // 端口
        overlay: {
            warnings: true,
            errors: true
        },
        // 跨域
        // proxy: {
        //     '/api': {
        //         target: 'http://10.129.105.21:12306', // 代理器中设置/api，项目请求路径为/api的替换axios中设置的baseURL
        //         changeOrigin: true, // 如果接口跨域，需要进行这个参数配置
        //         wx: true, // proxy websockets
        //         pathRewrite: { // pathRewrite方法重写url
        //             '^/api': '/'
        //             //pathRewrite: {'^/api': '/'} 重写之后url为 http://192.168.1.16:8085/xxxx
        //             //pathRewrite: {'^/api': '/api'} 重写之后url为 http://192.168.1.16:8085/api/xxxx
        //         }
        //     }
        // },
    },

    //css处理
    css: {
        // extract: process.env.NODE_ENV === "development" ? false : true
        extract: false
    },
    configureWebpack:config =>{ //打包时对js/css文件进行压缩
        if(process.env.NODE_ENV === 'production'){ //生产环境
            config.plugins.push(
                new CompressionPlugin({
                    /* [file]被替换为原始资产文件名。
                        [path]替换为原始资产的路径。
                        [dir]替换为原始资产的目录。
                        [name]被替换为原始资产的文件名。
                        [ext]替换为原始资产的扩展名。
                        [query]被查询替换。*/
                    filename: '[path][base].gz', // "[path].gz[query]",
                    //压缩算法
                    algorithm: 'gzip',
                    //匹配文件
                    test: /\.js$|\.css$|\.html$/, // /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i,
                    //压缩超过此大小的文件,以字节为单位
                    threshold: 10240,
                    minRatio: 0.8,
                    //删除原始文件只保留压缩后的文件
                    deleteOriginalAssets: false
                })
            )
        }
    }
    

}